package com.lx.pattern.singleton;

/**
 * 枚举单例 最完美的单例模式
 * <p>
 * Java的反射可以通过class文件 load到内存。其他所以方法都可以反射去构建对象。
 * 枚举单例不会被反序列话的原因是因为枚举类没有构造方法 所以反射无法构造对象。
 */
public enum EnumSingleton {
    INSTANCE;

    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            new Thread(() -> System.out.println(EnumSingleton.INSTANCE.hashCode())).start();
        }
    }
}
